package cn.edu.nju.software.greencreditsystem.DAO;

import cn.edu.nju.software.greencreditsystem.domain.EnvironmentIndex;
import java.awt.image.BufferedImage;
import java.sql.Date;
import java.util.List;

/**
 * 作者：何启睿
 * 创建时间：2011-8-18
 * 类描述：EnvironmentIndex类DAO接口
 */
public interface EnvironmentIndexDAO
{
    public boolean save(EnvironmentIndex ei);
    public boolean delete(EnvironmentIndex ei);
    public boolean update(EnvironmentIndex ei);
    public EnvironmentIndex getById(int id);
    
    /**
     * 方法描述：取指定企业指定环境指标最新数值
     * param：企业，环境指标和最新数值的个数（0为全部取出）
     * return：EnvironmentIndex对象列表（按时间降序排列）
    */
    public List<EnvironmentIndex> getLatest(int enterpriseID, int environmentFactorID, int num);
    
    /**
     * 方法描述：取指定企业指定环境指标历史最大值
     * param：企业，环境指标
     * return：最大值（不存在时返回-1）
    */
    public double getMax(int enterpriseID, int environmentFactorID);
    
    /**
     * 方法描述：取指定企业指定环境指标历史最小值
     * param：企业，环境指标
     * return：最小值（不存在时返回-1）
    */
    public double getMin(int enterpriseID, int environmentFactorID);
    
    /**
     * 方法描述：取指定企业指定环境指标最近一次增长数值
     * param：企业，环境指标
     * return：增长数值（减少为负值）
    */
    public double getIncreaseNumber(int enterpriseID, int environmentFactorID);
    
    /**
     * 方法描述：取指定企业指定环境评分最近一次增长幅度
     * param：企业，环境指标
     * return：增长幅度百分数（例如增长 k%，则返回 k；减少为负值）
    */
    public double getIncreaseMargin(int enterpriseID, int environmentFactorID);
    
    /**
     * 方法描述：取得企业一项环境指标指定时间段内（前后闭区间）的历史数据
     * param：企业，环境指标，开始时间，结束时间
     * return：FinancialScore对象列表
    */
    public List<EnvironmentIndex> getHistoryIndex(int enterpriseID, int environmentFactorID, Date begin, Date end);
}